#
# $Id: Makefile,v 1.7 2002/12/23 18:04:07 alan Exp $
#
NEATO=neato
DOT=dot

FSMS=srv-inv-fsm srv-inv-tree Preparse 
OUTDIR=out

PSFILES=$(patsubst %, $(OUTDIR)/%.ps, $(FSMS))
PDFFILES=$(patsubst %, $(OUTDIR)/%.pdf, $(FSMS))
SVGFILES=$(patsubst %, $(OUTDIR)/%.svg, $(FSMS))
PNGFILES=$(patsubst %, $(OUTDIR)/%.png, $(FSMS))

DOCBOOKTARGETS=design-overview.html
XSLP=xsltproc
XSLPOPT=--xinclude 
HTMLSHEET=htmlcss.xsl

FILES=$(PSFILES) $(PDFFILES) $(SVGFILES) $(PNGFILES) $(DOCBOOKTARGETS)


.PRECIOUS: Preparse.svg.dot Preparse.ps.dot Preparse.png.dot

.phony:

all: $(FILES)

%.html: $(HTMLSHEET) %.xml
	$(XSLP) $(XSLPOPT) -o $@ $^

#design-overview.html: $(HTMLSHEET) design-overview.xml
#	$(XSLP) $(XSLPOPT) -o $@ $^

$(OUTDIR):
	-mkdir $@

$(OUTDIR)/%.pdf: $(OUTDIR)/%.ps Makefile $(OUTDIR)
	ps2pdf13 $< $@

#Digraphs
$(OUTDIR)/%.ps: %.ps.dot Makefile $(OUTDIR)
	$(DOT) -Tps -o$@ $<

$(OUTDIR)/%.png: %.png.dot
	$(DOT) -Tpng -o$@ $<

$(OUTDIR)/%.svg: %.svg.dot Makefile $(OUTDIR)
	$(DOT) -Tsvg -o$@ $<

# Graphs
$(OUTDIR)/%.ps: %.neato Makefile $(OUTDIR)
	$(NEATO) -Tps -o$@ $<
$(OUTDIR)/%.png: %.neato
	$(NEATO) -Tpng -o$@ $<
$(OUTDIR)/%.svg: %.neato Makefile $(OUTDIR)
	$(NEATO) -Tsvg -o$@ $<

# Old style diagrams
%.ps.dot: %.dot
	ln -s $(@:.ps.dot=.dot) $@

%.png.dot: %.dot
	ln -s $(@:.png.dot=.dot) $@

%.svg.dot: %.dot
	ln -s $(@:.svg.dot=.dot) $@

# Code autogen
%.ps.dot: ../%.cxx fsm-dot.awk Makefile
	awk --assign output=$(@:.dot=) -f fsm-dot.awk $< > $@

%.svg.dot: ../%.cxx fsm-dot.awk Makefile
	awk --assign output=$(@:.dot=) -f fsm-dot.awk $< > $@


%.png.dot: ../%.cxx fsm-dot.awk Makefile
	awk --assign output=$(@:.dot=) -f fsm-dot.awk $< > $@


clean: 
	-/bin/rm -f $(FILES) *.ps

dummy:
	cp  *.pdf  ~/public_html/misc/


test:
	-@echo $(FILES)

##############################################################################
# 
# The Vovida Software License, Version 1.0 
# Copyright (c) 2000-2007 Vovida Networks, Inc.  All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 
# 3. The names "VOCAL", "Vovida Open Communication Application Library",
#    and "Vovida Open Communication Application Library (VOCAL)" must
#    not be used to endorse or promote products derived from this
#    software without prior written permission. For written
#    permission, please contact vocal@vovida.org.
# 
# 4. Products derived from this software may not be called "VOCAL", nor
#    may "VOCAL" appear in their name, without prior written
#    permission of Vovida Networks, Inc.
# 
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
# NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
# IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
# 
# ====================================================================
# 
# This software consists of voluntary contributions made by Vovida
# Networks, Inc. and many individuals on behalf of Vovida Networks,
# Inc.  For more information on Vovida Networks, Inc., please see
# <http://www.vovida.org/>.
# 
##############################################################################
